Performance data for network devices such as, for example, counters and link/interface state data, are typically used to monitor various parameters of hardware and software systems. Counter data is collected and analyzed to evaluate performance of systems and, possibly, identify scope for their improvement. In addition, link/interface state data provides information regarding the operational health of a device. Some example systems that provide counter and link/interface data include, software applications, virtual machines, physical machines, and operating systems.
Performance data is stored in databases and analytic tools may be used to explore and derive insights from stored data. A schema is designed for storing the performance data. One of skill in the art will appreciate that the operational cost and performance characteristics of a data storage system depends on the choice of schema. For instance, a schema used to store the counter data includes several columns such as, for example, a time stamp column, a device key column, a device address column, an interface column, a counter type column, and a counter value column. As the counter data is collected and stored, several rows of data are generated. For example, if there are ten counter types, ten interfaces, and ten thousand devices, then a total of one million rows of data are generated for a single sampling interval. If a sample is collected every minute, then about one and a half billion rows are generated per day. Storing such a large amount of data may cause performance degradation problems for the underlying data storage system. For example, storing large amounts of data may increase query response times, may increase storage costs, and may even compromise the integrity of the data stored.